import { defineConfig, loadEnv, ConfigEnv } from "vite";
import vue from "@vitejs/plugin-vue";

// import * as path from "path";
import { resolve } from "path";

import AutoImport from "unplugin-auto-import/vite";

import ReactivityTransform from "@vue-macros/reactivity-transform/vite";

import WindiCSS from "vite-plugin-windicss";

//处理路径相关
import path from "path";

export default defineConfig({
	resolve: {
		// 配置路径别名
		alias: {
			'@': path.resolve(__dirname, './src'),
			'*': path.resolve('')
		},
	},
	server: {
		// host: 'localhost', // 只能本地访问
		// host: "0.0.0.0", // 局域网别人也可访问
		// port: Number(env.VITE_APP_PORT),
		// 运行时自动打开浏览器
		open: true,
		proxy: {
			'/Api_Platform': {
				target: 'http://127.0.0.1:8111',
				changeOrigin: true,
				rewrite: (path) => path.replace(/^\/api/, '')
			},
		},
	},
	plugins: [vue(), WindiCSS()]
})

// https://vitejs.dev/config/
// export default defineConfig(({ mode }: ConfigEnv) => {
// 	// 获取`.env`环境配置文件
// 	const env = loadEnv(mode, process.cwd());
// 	// 设置 process.env.NODE_ENV
// 	process.env.NODE_ENV = env.NODE_ENV || "development";
// 	return {
// 		plugins: [
// 			vue(),
// 			ReactivityTransform(), // 启用响应式语法糖 $ref ...
// 			// 解决 `import { ref , reactive ..... } from 'vue'` 大量引入的问题
// 			AutoImport({
// 				imports: ["vue", "vue-router"],
// 			}),
// 			WindiCSS(),
// 		],
// 		// 反向代理解决跨域问题
// 		server: {
// 			// host: 'localhost', // 只能本地访问
// 			host: "0.0.0.0", // 局域网别人也可访问
// 			port: Number(env.VITE_APP_PORT),
// 			// 运行时自动打开浏览器
// 			open: true,
// 			proxy: {
// 				[env.VITE_APP_BASE_API]: {
// 					target: env.VITE_APP_SERVICE_API,
// 					changeOrigin: true,
// 					rewrite: (path) => path.replace(new RegExp("^" + env.VITE_APP_BASE_API), ""),
// 				},
// 			},
// 		},
// 		resolve: {
// 			// 配置路径别名
// 			alias: {
// 				"@":path.resolve(__dirname, 'src'),
// 			}
// 		},
// 		// 引入scss全局变量
// 		css: {
// 			preprocessorOptions: {
// 				scss: {
// 					additionalData: `@import "@/styles/color.scss";@import "@/styles/theme.scss";`,
// 				},
// 			},
// 		},
// 	};
// });
